Computer animation and other computer modeling combine two-dimensional (2D) or three-dimensional (3D) models of objects or characters and their corresponding programmed or keyframed movement. These models are constructed out of geometrical vertices, faces, and edges in a 3D coordinate system. One form of computer animation involves generating a 3D model made up of skeletal frame to dictate an object or character's movement. The skeletal frame is surrounded by a 3D model mesh representing the object or character's boundaries.
A 3D model mesh may include polygons, or faces, making up the surface of the mesh. The 3D model may also include edges which correspond to a delineation where two polygonal faces meet, and vertices representing the point of intersection between three or more edges. The faces, edges, and vertices, sometimes referred to as components, can be manipulated by animators to change the appearance of the character or object.
In some cases, the faces and edges may be extremely small for a particular animation model where a great amount of surface detail and movement is required, resulting in vertices which are spaced closely together or positioned within constrained areas within the mesh. For example, a 3D mesh representing a character's face may include thousands of vertices in order to create hundreds of unique facial details, and many of the facial vertices may be positioned in constrained areas of the mesh, such as inside the character's mouth.
In order to define a character's or object's appearance and control its movements, the 3D mesh is bound to an underlying system of skeletal frame elements and joints in a process referred to as rigging. This allows for an animator to control all components of an object or character including elements of the skeletal frame and mesh which are defined to move together via predefined relative associations via the rigging process.
In order to accomplish this, the rigging process—as well as in other processes of the animation—may require the ability to select specific components within a 3D mesh with fine granularity in order to accurately define an object or a character's movements. However, existing solutions for accurately and consistently selecting components within a 3D mesh for rigging, and other computer processes (e.g., animation processes), selection of a particular component as defined only with respect to a single displayed perspective of the 3D mesh. In other words, in the existing solutions, if a particular component of a 3D mesh is not clearly displayed and visible to a user on an interface, the user is not provided with a way to accurately and consistently select the particular component.
Thus, the existing systems and methods are unable to provide a solution for accurately and consistently selecting components of a 3D model independent of a displayed perspective of the 3D model. Therefore, it may be advantageous for a system and method to allow for traversal and selection of components of a 3D model using surface topology.